package com.bpc.cs.service;

import java.util.List;

import com.bpc.cs.managed.dvo.SchemeDVO;
import com.bpc.cs.util.Message;

/**
 * @author   phan_tp
 * @datetime Nov 30, 2012 : 4:32:53 PM
 */
public interface ISchemeService {

	/**
	 * Get all Scheme
	 * @return ArrayList<ScoringSchemeDTO>
	 */
	public List<SchemeDVO> getAllScheme();

	/**
	 * Add new Scheme
	 * @param String schemeName
	 * @return Message
	 */
	public Message addScheme(final String schemeName);

	/**
	 * Modify Scheme
	 * @param int schemeID
	 * @param String schemeName
	 * @return Message
	 */
	public Message modifyScheme(final int schemeID, final String schemeName);

	/**
	 * Remove Scheme
	 * @param int schemeID
	 * @return boolean TRUE : Remove successfully
	 * 				   FALSE: Remove failed
	 */
	public boolean removeScheme(int schemeID);

	/**
	 * Remove entire scheme which contains rule, factorchoice
	 * @param int schemeID
	 * @return boolean TRUE : Remove successfully
	 * 				   FALSE: Remove failed
	 */
	public boolean removeEntireScheme(int schemeID);
}
